Today as applications are moving towards a distributed model on the web, it is becoming more important for applications to communicate with other applications. Synchronizing of data of a centralized data store is no longer limited to a client and the server but has been extended to peer to peer. The centralized data often requires synchronization of distributed independent data stores that update the centralized data store. For example, uploading of data into the centralized data store may necessitate a complete uploading of a document or only a partial uploading of the document (i.e. increment updates if only modifications to the document are required). As applications attempt to communicate with other applications, applications may utilize a common approach in relation to the data and the semantics in synchronizing exchanged data.
As an example, the financial market is no longer untapped. There are financial firms that have developed their own solutions, in which news content and quotes are often blended into financial data such as client's portfolios. Centralized data stores that are associated with each type of data are typically uploaded by the financial firm and retrieved by a client. However, the different solutions are incompatible in many cases. Each financial firm may have an information technology (IT) department that develops and maintains the firm's proprietary solution. This scenario is disadvantageous to the financial firm in that finance is the main focus of the financial firm and not developing IT solutions. Moreover, other services, other than financial services, may experience common needs.
With the prior art, a data transfer protocol typically requires an application programming interface (API) to be defined for each data object. Moreover, batching operations may generate additional issues. Thus, it would be an advancement in the art to provide method and apparatus in which a common platform may be used by different users in developing services in which data may be synchronized. Furthermore, the platform should enable a user to expand the user's service (such as adding a new data object type) with a minimal amount of effort.